home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
home20dm.zip
/
HOME20DM.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-09-22
|
21KB
|
1,032 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.3O (Encryption type II) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String TSTRING026(15)
String TSTRING027(15)
String TSTRING028(15)
String TSTRING029(15)
String TSTRING030(15)
;------------------------------------------------------------------------------
Cls
PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X1F┐@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X7F┌────────────────────────────────────@X70┐@X10 @X1F│@X07"
PrintLn "@X10│ @X7F│ @X7C Homework v2.0 @X70 │@X10 @X1F│@X07"
PrintLn "@X10│ @X7F│ @X70│@X10 @X1F│@X07"
PrintLn "@X10│ @X7F│ @X7C Copyright John Gonski 1995-96 @X70│@X10 @X1F│@X07"
PrintLn "@X10│ @X7F└@X70────────────────────────────────────┘@X10 @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F 1609 Holly Parkway @X1F│@X07"
PrintLn "@X10│ @X1F Williamstown, New Jersey 08094 @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│@X1B Today is @SYSDATE@ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10│ @X1F│@X07"
PrintLn "@X10└@X1F─────────────────────────────────────────────────────────────────────────────┘@X07"
Newline
Wait
If ((Right(Date(), 2) > 97) || (Right(Date(), 2) < 96)) Then
Cls
PrintLn "@X0CThis demo program of v2.0 of the HOMEWORK program is too old. Please register"
PrintLn "this program if you want to continue to use it."
Newline
PrintLn "Please contact me at @X0Fjohn.gonski@compudata.com @X0Cfor more information."
Newline
Wait
End
Endif
Print "@X0APlease wait..."
STRING001 = PPEPath() + "HOMEWORK.CFG"
STRING003 = PPEPath() + "TEACHERS.CFG"
INTEGER001 = ReadLine(STRING003, 1)
STRING004 = PPEPath() + "ERROR.LOG"
STRING025 = ReadLine(STRING001, 1)
STRING016 = ReadLine(STRING001, 2)
STRING013 = PPEPath() + "ACTIVITY.LOG"
STRING011 = "@X0EHomework for: @X0A"
STRING012 = "@X0ELast updated: @X0A"
STRING024 = "@X0ESubject: @X0A"
STRING006 = Date()
INTEGER008 = 1
INTEGER009 = 2
STRING009 = "CRITICAL ERROR #"
STRING020 = "Entered Homework at " + TimeAp(Time()) + "."
Log STRING020, 0
FAppend 1, STRING013, 1, 2
FPutLn 1, "**************************************************"
FPutLn 1, Mixed(U_Name()), " entered at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
While (INTEGER008 < 16) Do
TSTRING029(INTEGER008) = ReadLine(STRING003, INTEGER009)
Inc INTEGER009
TSTRING027(INTEGER008) = ReadLine(STRING003, INTEGER009)
Inc INTEGER009
TSTRING028(INTEGER008) = ReadLine(STRING003, INTEGER009)
Inc INTEGER009
TSTRING026(INTEGER008) = ReadLine(STRING003, INTEGER009)
Inc INTEGER009
TSTRING030(INTEGER008) = ReadLine(STRING003, INTEGER009)
Inc INTEGER008
Inc INTEGER009
EndWhile
STRING017 = ReadLine(STRING003, 76)
:LABEL001
Cls
If (CurSec() == STRING025) Then
Cls
PrintLn "@X0BHomework/DEMO Version 2.0"
Newlines 2
PrintLn " @X0F2. - @X0EChange The Homework@X07"
PrintLn " @X0F3. - @X0EQuit Back To BBS@X07"
AnsiPos 1, 3
Print "@X0E@X3E 1. - @X3FNormal Homework Program @X0E@X07"
:LABEL002
STRING010 = ""
While (STRING010 == "") Do
STRING010 = TInkey(0)
EndWhile
If ((Upper(STRING010) == "U") || (STRING010 == "UP")) Then
Goto LABEL003
ElseIf ((Upper(STRING010) == "D") || (STRING010 == "DOWN")) Then
Goto LABEL004
ElseIf (STRING010 == Chr(13)) Then
Goto LABEL005
ElseIf ((Upper(STRING010) == "Q") || (STRING010 == Chr(27))) Then
Goto LABEL033
Else
Goto LABEL002
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "1 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL003
INTEGER006 = GetY()
Select Case (INTEGER006)
Case 3
AnsiPos 1, 3
Print " @X0F1. - @X0ENormal Homework Program @X07 "
AnsiPos 1, 5
Print "@X0E@X3E 3. - @X3FQuit Back To BBS @X0E@X07"
Goto LABEL002
Case 4
AnsiPos 1, 4
Print " @X0F2. - @X0EChange The Homework @X07 "
AnsiPos 1, 3
Print "@X0E@X3E 1. - @X3FNormal Homework Program @X0E@X07"
Goto LABEL002
Case 5
AnsiPos 1, 5
Print " @X0F3. - @X0EQuit Back To BBS @X07 "
AnsiPos 1, 4
Print "@X0E@X3E 2. - @X3FChange The Homework @X0E@X07"
Goto LABEL002
End Select
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "2 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL004
INTEGER006 = GetY()
Select Case (INTEGER006)
Case 3
AnsiPos 1, 3
Print " @X0F1. - @X0ENormal Homework Program @X07 "
AnsiPos 1, 4
Print "@X0E@X3E 2. - @X3FChange The Homework @X0E@X07"
Goto LABEL002
Case 4
AnsiPos 1, 4
Print " @X0F2. - @X0EChange The Homework @X07 "
AnsiPos 1, 5
Print "@X0E@X3E 3. - @X3FQuit Back To BBS @X0E@X07"
Goto LABEL002
Case 5
AnsiPos 1, 5
Print " @X0F3. - @X0EQuit Back To BBS @X07 "
AnsiPos 1, 3
Print "@X0E@X3E 1. - @X3FNormal Homework Program @X0E@X07"
Goto LABEL002
End Select
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "3 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL005
INTEGER006 = GetY()
Select Case (INTEGER006)
Case 3
Cls
Goto LABEL022
Case 4
Cls
If (STRING016 <> "") Then
Print "@X0EPlease enter password? "
InputText "_", STRING018, 14, 20
If (STRING018 == STRING016) Then
Goto LABEL006
Goto LABEL006
Endif
Newlines 2
PrintLn "@X0CWrong Password!"
Delay 80
FAppend 1, STRING004, 1, 2
FPutLn 1, "Entered wrong password when tring to edit teachers."
FClose 1
Log "Entered wrong password when tring to edit teachers.", 0
End
Endif
:LABEL006
If (OnLocal()) Then
Goto LABEL007
Else
Cls
PrintLn "@X0CSorry, ", Mixed(UN_Name()), ", but you can't edit the teacher files from a remote computer."
FAppend 1, STRING013, 1, 2
FPutLn 1, "Tried to edit the teacher files from a remote computer."
FClose 1
Log "Tried to edit the teacher files from a remote computer.", 0
Newline
Wait
Goto LABEL001
Endif
Case 5
Goto LABEL033
End Select
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "4 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL007
Cls
INTEGER002 = 1
INTEGER003 = 1
INTEGER004 = 1
INTEGER007 = 16
While (INTEGER002 < INTEGER007) Do
AnsiPos INTEGER003, INTEGER004
Print " @X0F ", Right(INTEGER002, 2), ". - @X0E", TSTRING029(INTEGER002), " "
Inc INTEGER002
Inc INTEGER004
EndWhile
AnsiPos 1, 17
PrintLn "@X0A(@X0E@X0A) or (@X0EU@X0A) to move up (@X0E@X0A) or (@X0ED@X0A) to move down (@X0EENTER@X0A) to select@X07"
PrintLn "@X0A(@X0EQ@X0A) or (@X0EESC@X0A) to exit (@X0EE@X0A) to enter the Homework program@X07"
PrintLn "@X0A(@X0ES@X0A) set all files the same (@X0ER@X0A) to reset all the files@X07"
INTEGER005 = 1
Goto LABEL009
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "5 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL008
STRING010 = ""
While (STRING010 == "") Do
STRING010 = TInkey(0)
EndWhile
If ((Upper(STRING010) == "U") || (STRING010 == "UP")) Then
Goto LABEL020
ElseIf ((Upper(STRING010) == "D") || (STRING010 == "DOWN")) Then
Goto LABEL021
Else
Select Case (Upper(STRING010))
Case "S"
Goto LABEL010
Case "R"
Goto LABEL014
Case "A"
Goto LABEL019
Case Chr(13)
Goto LABEL015
Case "E"
Cls
Goto LABEL022
Case "Q", Chr(27)
Cls
Goto LABEL033
Case Else
Goto LABEL008
Endif
End Select
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "6 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL009
AnsiPos 1, 1
STRING015 = ScrText(2, GetY(), 39, 0)
STRING014 = ScrText(2, 2, 39, 0)
Print "@X0E@X3E", Left(STRING015, 6), "@X3F", Right(STRING015, 33), "@X0E@X07"
Goto LABEL008
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "7 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL010
INTEGER005 = GetX()
INTEGER006 = GetY()
AnsiPos 1, 21
SaveScrn
:LABEL011
Cls
STRING022 = ""
PrintLn "@X3E In the space below type what you want to put in ALL your teacher files. @X07"
PrintLn "@X30 @X07 @X30 @X07"
PrintLn "@X3E Blank line quits @X07"
AnsiPos 2, 2
InputText "_", STRING022, 15, 71
If (STRING022 == "") Then
RestScrn
AnsiPos INTEGER005, INTEGER006
Goto LABEL008
Endif
AnsiPos 1, 5
PrintLn "@X3E Now what color do you want your text to be: @X07"
PrintLn "@X30 @X0F1 = @X01Dk. Blue @X0F12 = @X0CRed @X30 @X07"
PrintLn "@X30 @X0F2 = @X02Dk. Green @X0F13 = @X0DMagenta @X30 @X07"
PrintLn "@X30 @X0F3 = @X03Dk. Cyan @X0F14 = @X0EYellow @X30 @X07"
PrintLn "@X30 @X0F4 = @X04Dk. Red @X0F15 = @X0FWhite @X30 @X07"
PrintLn "@X30 @X0F5 = @X05Dk. Magenta @X0F16 = @X89Bl. Blue @X30 @X07"
PrintLn "@X30 @X0F6 = @X06Dk. Yellow @X0F17 = @X8ABl. Green @X30 @X07"
PrintLn "@X30 @X0F7 = @X07Dk. White @X0F18 = @X8BBl. Cyan @X30 @X07"
PrintLn "@X30 @X0F8 = @X08Gray @X0F19 = @X8CBl. Red @X30 @X07"
PrintLn "@X30 @X0F9 = @X09Blue @X0F20 = @X8DBl. Magenta @X30 @X07"
PrintLn "@X30 @X0F10 = @X0AGreen @X0F21 = @X8EBl. Yellow @X30 @X07"
PrintLn "@X30 @X0F11 = @X0BCyan @X0F22 = @X8FBl. White @X30 @X07"
PrintLn "@X30 @X07"
PrintLn "@X30 @X07 @X3E Put your color number here. @X07"
PrintLn "@X30 @X07"
AnsiPos 2, 18
:LABEL012
InputText "_", STRING023, 15, 2
Select Case (STRING023)
Case 1
STRING023 = "@X01"
Case 2
STRING023 = "@X02"
Case 3
STRING023 = "@X03"
Case 4
STRING023 = "@X04"
Case 5
STRING023 = "@X05"
Case 6
STRING023 = "@X06"
Case 7
STRING023 = "@X07"
Case 8
STRING023 = "@X08"
Case 9
STRING023 = "@X09"
Case 10
STRING023 = "@X0A"
Case 11
STRING023 = "@X0B"
Case 12
STRING023 = "@X0C"
Case 13
STRING023 = "@X0D"
Case 14
STRING023 = "@X0E"
Case 15
STRING023 = "@X0F"
Case 16
STRING023 = "@X89"
Case 17
STRING023 = "@X8A"
Case 18
STRING023 = "@X8B"
Case 19
STRING023 = "@X8C"
Case 20
STRING023 = "@X8D"
Case 21
STRING023 = "@X8E"
Case 22
STRING023 = "@X8F"
Case Else
Goto LABEL012
End Select
AnsiPos 1, 21
PrintLn STRING023 + STRING022
STRING005 = "Y"
InputYN "Is this correct? (Y/n) _", STRING005, 62
If (STRING005 == NoChar()) Then
Goto LABEL011
Else
Goto LABEL013
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009 + "10 at " + TimeAp(Time()) + " on " + Date() + "."
FClose 1
Goto LABEL033
:LABEL013
Cls
INTEGER008 = 1
PrintLn "@X0AWorking...@X07"
While (INTEGER008 < INTEGER001 + 1) Do
Delete TSTRING027(INTEGER008)
FCreate 1, TSTRING027(INTEGER008), 1, 0
FPutLn 1, STRING023 + STRING022 + "@X07"
FClose 1
Inc INTEGER008
EndWhile
RestScrn
AnsiPos INTEGER005, INTEGER006
Goto LABEL008
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "11 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL014
INTEGER005 = GetX()
INTEGER006 = GetY()
AnsiPos 1, 21
SaveScrn
Cls
STRING007 = "N"
PrintLn "@X0AYou are about to delete all of the information in all of your teacher files.@X07"
InputYN "Are you sure you want to do this? (Y/n) _", STRING007, 14
If (STRING007 == NoChar()) Then
RestScrn
AnsiPos INTEGER005, INTEGER006
Goto LABEL008
Else
STRING023 = ""
STRING022 = ""
Goto LABEL013
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "12 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL015
STRING010 = ScrText(GetX() - 40, GetY(), 4, 0)
If (ScrText(GetX() - 32, GetY(), 5, 0) == " ") Then
Goto LABEL008
Endif
INTEGER005 = GetX()
INTEGER006 = GetY()
AnsiPos 1, 21
SaveScrn
Cls
PrintLn "@X0AYou have selected ", TSTRING029(STRING010), "."
Newlines 2
PrintLn "@X0A(@X0EE@X0A)dit homework file (@X0EA@X0A)ttach a download file"
PrintLn "@X0A(@X0EQ@X0A)uit to main menu"
:LABEL016
STRING008 = ""
While (STRING008 == "") Do
STRING008 = TInkey(0)
EndWhile
Select Case (Upper(STRING008))
Case "E"
Goto LABEL017
Case "A"
Goto LABEL019
Case "Q"
Goto LABEL018
Case Else
Goto LABEL016
End Select
:LABEL017
STRING010 = Strip(STRING010, " ")
Shell 1, STRING019, "PCBEDIT", TSTRING027(STRING010)
:LABEL018
RestScrn
AnsiPos INTEGER005, INTEGER006
Goto LABEL008
:LABEL019
Cls
PrintLn "Teacher's Name: @X0E", TSTRING029(STRING010)
PrintLn "@X0ACurrent Attached File: @X0E", TSTRING030(STRING010)
Newlines 2
PrintLn "@X0AEnter the full path and file name to new attached file (Blank Line Quits):"
InputText "_", TSTRING030(STRING010), 10, 79
Newlines 2
PrintLn "@X0AWorking..."
Delete PPEPath() + "TEACHERS.CFG"
FCreate 2, STRING003, 1, 2
FPutLn 2, INTEGER001
INTEGER008 = 1
While (INTEGER008 < INTEGER001 + 1) Do
FPutLn 2, TSTRING029(INTEGER008)
FPutLn 2, TSTRING027(INTEGER008)
FPutLn 2, TSTRING028(INTEGER008)
FPutLn 2, TSTRING026(INTEGER008)
FPutLn 2, TSTRING030(INTEGER008)
Inc INTEGER008
EndWhile
FClose 2
Newline
PrintLn "Finished updating files."
Wait
RestScrn
AnsiPos INTEGER005, INTEGER006
Goto LABEL008
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "13 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL020
INTEGER005 = GetX()
INTEGER006 = GetY()
Select Case (INTEGER006)
Case 1
STRING015 = ScrText(2, 1, 39, 0)
STRING014 = ScrText(2, 15, 39, 0)
AnsiPos 1, 1
Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, 15
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL008
Case 15
STRING015 = ScrText(2, 15, 39, 0)
STRING014 = ScrText(2, 14, 39, 0)
AnsiPos 1, 15
Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, 14
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL008
Case 15, 1
STRING015 = ScrText(2, INTEGER006, 39, 0)
STRING014 = ScrText(2, INTEGER006 - 1, 39, 0)
AnsiPos 1, INTEGER006
Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, INTEGER006 - 1
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL008
End Select
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "14 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
:LABEL021
INTEGER006 = GetY()
INTEGER005 = GetX()
If (INTEGER006 == 15) Then
STRING015 = ScrText(2, INTEGER006, 39, 0)
STRING014 = ScrText(2, 1, 39, 0)
AnsiPos 1, 15
Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, 1
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL008
ElseIf (INTEGER005 >= 1) Then
STRING015 = ScrText(2, INTEGER006, 39, 0)
STRING014 = ScrText(2, INTEGER006 + 1, 39, 0)
AnsiPos 1, INTEGER006
Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, INTEGER006 + 1
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL008
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "15 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Else
:LABEL022
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0ETesting..."
Delay 20
Endif
If (Exist(STRING001)) Then
Goto LABEL023
Endif
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0CFAILED 1"
Newline
Endif
PrintLn "@X0CThe homework.cfg file is missing."
Newline
Wait
Goto LABEL035
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "16 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL023
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0APASS 1"
Delay 15
Endif
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0APASS 2"
Delay 15
Endif
Goto LABEL024
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0CFAILED 2b"
Newline
Wait
Goto LABEL035
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "17 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL024
If (STRING017 <> "") Then
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0EWARNING 3"
Delay 15
Newline
PrintLn "@X0CYou have more than 15 teachers. This version can only handle"
PrintLn "15. Any others that are above 15 will not be shown."
Delay 150
Else
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0APASS 3"
Delay 15
Endif
Goto LABEL025
PrintLn "@X0CFAILED 3"
Newline
Wait
Goto LABEL035
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "18 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
Endif
Endif
:LABEL025
Cls
Goto LABEL026
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0CFAILED 3b"
Newline
Wait
Endif
Cls
Newlines 10
FAppend 1, STRING004, 1, 2
FPutLn 1, "Error in initialization at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
PrintLn "@X0C@POS:36@ERROR!"
Newlines 10
Delay 75
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0CFAILED 3c"
Newline
Wait
Goto LABEL035
Endif
:LABEL026
Cls
If (INTEGER001 == 0) Then
PrintLn "@X0ESorry, but there are no teachers available."
Newline
Wait
FAppend 1, STRING004, 1, 2
FPutLn 1, "Sorry, there are no teachers at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL035
Endif
If (Exist(PPEPath() + "INTRO")) Then
DispFile PPEPath() + "INTRO", 2 + 1 + 4
Endif
INTEGER002 = 1
INTEGER003 = 1
INTEGER004 = 5
INTEGER007 = 16
Cls
PrintLn "@POS:15@@X3F┌─────────────────────────────────────────────────@X30┐@X07"
PrintLn "@POS:15@@X3F│ Homework v2.0 @X30│@X07"
PrintLn "@POS:15@@X3F└@X30─────────────────────────────────────────────────┘@X07"
Newline
While (INTEGER002 < INTEGER007) Do
AnsiPos GetX() - 38, INTEGER004
Print " @X0F", Right(INTEGER002, 2), ". - @X0E", TSTRING029(INTEGER002), " @X07"
Inc INTEGER002
Inc INTEGER004
EndWhile
AnsiPos 1, 21
PrintLn "@X0A(@X0E@X0A) or (@X0EU@X0A) to move up (@X0E@X0A) or (@X0ED@X0A) to move down (@X0EENTER@X0A) to select@X07"
PrintLn "@X0A(@X0EQ@X0A) or (@X0EESC@X0A) to exit (@X0EH@X0A) or (@X0E?@X0A) Help@X07"
INTEGER005 = 1
Goto LABEL028
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "19 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL027
STRING010 = ""
While (STRING010 == "") Do
STRING010 = TInkey(0)
EndWhile
If (((Upper(STRING010) == "U") || (STRING010 == "u")) || (STRING010 == "UP")) Then
Goto LABEL030
ElseIf ((Upper(STRING010) == "D") || (STRING010 == "DOWN")) Then
Goto LABEL031
ElseIf ((Upper(STRING010) == "H") || (STRING010 == "?")) Then
Goto LABEL032
ElseIf (STRING010 == Chr(13)) Then
Goto LABEL029
ElseIf ((Upper(STRING010) == "Q") || (STRING010 == Chr(27))) Then
Goto LABEL033
Else
Goto LABEL027
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "20 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL028
AnsiPos 1, 5
STRING015 = ScrText(2, GetY(), 39, 0)
STRING014 = ScrText(2, 2, 39, 0)
Print "@X0E@X3E", Left(STRING015, 6), "@X3F", Right(STRING015, 33), "@X0E@X07"
Goto LABEL027
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "21 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL029
STRING010 = ScrText(GetX() - 40, GetY(), 4, 0)
If (ScrText(GetX() - 32, GetY(), 5, 0) == " ") Then
Goto LABEL027
Endif
STRING010 = Strip(STRING010, " ")
INTEGER005 = GetX()
INTEGER006 = GetY()
AnsiPos 1, 22
SaveScrn
Cls
If (Exist(TSTRING026(STRING010))) Then
DispFile TSTRING026(STRING010), 2 + 1 + 4
Newline
Wait
Cls
Endif
PrintLn STRING011 + TSTRING029(STRING010)
PrintLn STRING012, "", FileInf(TSTRING027(STRING010), 2), " @X0Eat @X0A", TimeAp(FileInf(TSTRING027(STRING010), 3))
PrintLn STRING024 + TSTRING028(STRING010)
Newline
DispFile TSTRING027(STRING010), 2 + 1 + 4
Newline
If (Exist(TSTRING030(STRING010))) Then
STRING002 = "N"
Beep
InputText "There is a file attached. Flag for download? (N/y)_", STRING002, 10, 1
Newlines 2
If (Upper(STRING002) == "Y") Then
Flag TSTRING030(STRING010)
PrintLn "@X0EFile has been flaged for download. When you leave the Homework program"
PrintLn "you will have an option to download it then."
Newline
Endif
Endif
Wait
Cls
RestScrn
AnsiPos INTEGER005, INTEGER006
Goto LABEL027
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "24 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL030
INTEGER005 = GetX()
INTEGER006 = GetY()
Select Case (INTEGER006)
Case 5
STRING015 = ScrText(2, 5, 39, 0)
STRING014 = ScrText(2, 19, 39, 0)
AnsiPos 1, 5
Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, 19
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL027
Case 20
STRING015 = ScrText(2, 20, 39, 0)
STRING014 = ScrText(2, 19, 39, 0)
AnsiPos 1, 20
Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, 19
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL027
Case 20, 5
STRING015 = ScrText(2, INTEGER006, 39, 0)
STRING014 = ScrText(2, INTEGER006 - 1, 39, 0)
AnsiPos 1, INTEGER006
Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, INTEGER006 - 1
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL027
End Select
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "25 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL031
INTEGER006 = GetY()
INTEGER005 = GetX()
If (INTEGER006 == 19) Then
STRING015 = ScrText(2, INTEGER006, 39, 0)
STRING014 = ScrText(2, 5, 39, 0)
AnsiPos 1, 19
Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, 5
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL027
ElseIf (INTEGER005 >= 5) Then
STRING015 = ScrText(2, INTEGER006, 39, 0)
STRING014 = ScrText(2, INTEGER006 + 1, 39, 0)
AnsiPos 1, INTEGER006
Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
AnsiPos 1, INTEGER006 + 1
Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
Goto LABEL027
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "26 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
:LABEL032
INTEGER005 = GetX()
INTEGER006 = GetY()
Call PPEPath() + "HELP.PPE"
AnsiPos INTEGER005, INTEGER006
Goto LABEL027
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "27 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
Goto LABEL033
Endif
:LABEL033
If (FlagCnt() > 0) Then
Cls
AnsiPos 1, 20
SaveScrn
AnsiPos 20, 3
PrintLn "@X10┌─────────────────────────────────────────@X1F┐@X07"
AnsiPos 20, 4
PrintLn "@X10│@X1BYou have ", FlagCnt(), " file(s) flagged for download.@X1F@POS:62@│@X07"
AnsiPos 20, 5
PrintLn "@X10│@X1BDo you want to download them now? (Y,n) @X1F│@X07"
AnsiPos 20, 6
PrintLn "@X10└@X1F─────────────────────────────────────────┘@X07"
AnsiPos 1, 23
STRING010 = ""
While (STRING010 == "") Do
STRING010 = TInkey(0)
EndWhile
If ((STRING010 == "N") || (STRING010 == "n")) Then
AnsiPos 20, 10
PrintLn "@X10┌────────────────────────────────────────@X1F┐@X07"
AnsiPos 20, 11
PrintLn "@X10│@X1BYou can still download the file(s) later@X1F│@X07"
AnsiPos 20, 12
PrintLn "@X10│@X1Bby typing 'D' at the BBS main menu. @X1F│@X07"
AnsiPos 20, 13
PrintLn "@X10│@X1BPress (Enter) To Continue │@X07"
AnsiPos 20, 14
PrintLn "@X10└@X1F────────────────────────────────────────┘@X07"
AnsiPos 1, 23
STRING010 = ""
While (STRING010 == "") Do
STRING010 = TInkey(0)
EndWhile
Goto LABEL034
Goto LABEL034
Endif
Cls
Download ""
Endif
:LABEL034
Cls
STRING021 = "Exited Homework at " + TimeAp(Time()) + "."
Log STRING021, 0
FAppend 1, STRING013, 1, 2
FPutLn 1, "Left at ", TimeAp(Time()), "."
FClose 1
:LABEL035
Cls
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0APass 4"
Delay 15
Endif
End
If (CurSec() == STRING025) Then
Newline
PrintLn "@X0CFAILED 4"
Delay 15
Endif
FAppend 1, STRING004, 1, 2
FPutLn 1, STRING009, "28 at ", TimeAp(Time()), " on ", Date(), "."
FClose 1
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 4 End
; 26 Cls
; 12 Wait
; 267 Goto
; 123 Let
; 39 Print
; 96 PrintLn
; 102 If
; 3 DispFile
; 2 FCreate
; 30 FAppend
; 32 FClose
; 38 FPutLn
; 2 Delete
; 4 Log
; 2 InputYN
; 10 Delay
; 12 Inc
; 29 Newline
; 8 Newlines
; 1 Shell
; 5 InputText
; 1 Beep
; 1 Call
; 66 AnsiPos
; 5 SaveScrn
; 6 RestScrn
; 1 Flag
; 1 Download
;
;
; ■ Functions used :
;
; 34 +
; 9 -
; 96 ==
; 2 <>
; 8 <
; 2 >
; 4 >=
; 102 !
; 2 &&
; 13 ||
; 18 Upper()
; 22 Left()
; 26 Right()
; 6 Chr()
; 30 Date()
; 30 Time()
; 1 U_Name()
; 31 TimeAp()
; 2 NoChar()
; 2 Strip()
; 8 PPEPath()
; 9 ReadLine()
; 1 OnLocal()
; 1 UN_Name()
; 12 CurSec()
; 4 Exist()
; 14 GetX()
; 18 GetY()
; 2 FileInf()
; 28 ScrText()
; 2 Mixed()
; 2 FlagCnt()
; 6 TInkey()
;
;------------------------------------------------------------------------------
;
; Analysis flags : SCf
;
; S - Shell to DOS ■ 5
; This may be normal if the PPE need to execute an external command,
; but may be actually anything... nasty (formating HD, rebooting,...)
; or usefull (sorting, maintenance,...). Check!
; ■ Search for : SHELL
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
; f - Flag files for download ■ 3
; This may be normal if a PPE needs to send some files, but since
; this statement allows flagging of any file on the hard disk, you
; have to be carefull. Check!
; ■ Search for : FLAG
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 11 While/EndWhile
; 45 If/Then or If/Then/Else
; 8 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------